package com.cibertec.proydawi.action;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.cibertec.proydawi.bean.ListDTO;
import com.cibertec.proydawi.bean.TramiteDTO;
import com.cibertec.proydawi.bean.UsuarioDTO;
import com.cibertec.proydawi.dao.TramiteDAO;
import com.cibertec.proydawi.dao.UsuarioDAO;
import com.cibertec.proydawi.utils.Entidad;
import com.opensymphony.xwork2.ActionSupport;

public class TramiteAction extends ActionSupport 
{
	
	public final String EXITO="exito";
	private TramiteDTO tramite;
	private List<TramiteDTO> listTramites;
	private List<ListDTO> listCboTipo;
	
	private Date todayDate;
	
	public Date getTodayDate() {
		return new Date();
	}

	public void setTodayDate(Date todayDate) {
		this.todayDate = todayDate;
	}

	public List<ListDTO> getListCboTipo() {
		return listCboTipo;
	}

	public void setListCboTipo(List<ListDTO> listCboTipo) {
		this.listCboTipo = listCboTipo;
	}

	public TramiteDTO getTramite() {
		return tramite;
	}

	public void setTramite(TramiteDTO tramite) {
		this.tramite = tramite;
	}
	
	public List<TramiteDTO> getListTramites() {
		return listTramites;
	}

	public void setListTramites(List<TramiteDTO> listTramites) {
		this.listTramites = listTramites;
	}

	
	@Override
	public String execute() throws Exception 
	{
		// TODO Auto-generated method stub
		
		return EXITO;
	}
	
	//listado de tramites 
	public String listadoTramites() throws Exception
	{
		/*
				 * select tb_tramite.id_tramite,tb_tramite.id_registrante,
		tb_tramite.fecha_ini, tb_tramite.fecha_lim, tb_tramite.estado, 
		tb_tipo_tramite.descripcion from tb_tramite inner join
		  tb_tipo_tramite  on
		tb_tramite.id_tipo_tramite= tb_tipo_tramite.id_tipo_tramite
				 * */
		
		System.out.println("[TramiteAction ]listadoTramites");
		TramiteDAO tdao=new TramiteDAO();
		
		List<Entidad> lst1=new ArrayList<Entidad>();
		lst1.add(new Entidad("id_tramite", null, Entidad.EINT));
		lst1.add(new Entidad("id_registrante", null, Entidad.ESTRING));
		lst1.add(new Entidad("fecha_ini", null, Entidad.ESTRING));
		lst1.add(new Entidad("fecha_lim", null, Entidad.ESTRING));
		lst1.add(new Entidad("estado", null, Entidad.ESTRING));
		
		List<Entidad> lst2=new ArrayList<Entidad>();
		lst2.add(new Entidad("descripcion", null, Entidad.ESTRING));
		
		String key="id_tipo_tramite";//unen las tablas 

		listTramites=tdao.listadoTramites("tb_tramite", "tb_tipo_tramite", lst1, lst2, key);
		System.out.println("end >>>>>><<<<<"+listTramites.size());
		return EXITO;
	}
	
	//setea tramite
	public String setTramites() throws Exception
	{
		System.out.println("[TramiteAction ]setTramites "+tramite.getId_tramite());
		return EXITO;
	}
	//modifica tramite
	public String modificaTramites() throws Exception
	{
		
		System.out.println("[TramiteAction ]modificaTramites "+tramite.getId_tramite());
		TramiteDAO tdao=new TramiteDAO();
		
		List<Entidad> lst1=new ArrayList<Entidad>();
		//lst1.add(new Entidad("id_tramite", null, Entidad.EINT));
		lst1.add(new Entidad("id_registrante", tramite.getId_registrante(), Entidad.EINT));
		lst1.add(new Entidad("fecha_ini", tramite.getFecha_ini(), Entidad.ESTRING));
		lst1.add(new Entidad("fecha_lim", tramite.getFecha_lim(), Entidad.ESTRING));
		lst1.add(new Entidad("estado", tramite.getEstado(), Entidad.ESTRING));
		
		System.out.println("update "+
				tramite.getId_tramite()+" "+
			tramite.getId_registrante()+" "+
			tramite.getFecha_ini()+" "+
			tramite.getFecha_lim()+" "+
			tramite.getEstado()+" "
			);
		tdao.modificaTramite(lst1,"tb_tramite",new Entidad("id_tramite", tramite.getId_tramite(), Entidad.EINT));
		
		tramite=null;
		return EXITO;
	}
	
	//go tramite
	public String goRegistroTramites() throws Exception
	{
		setTodayDate(new Date());
		System.out.println("todayDate "+todayDate);
		TramiteDAO tdao=new TramiteDAO();
		listCboTipo=tdao.CboTipo_Tramite("tb_tipo_tramite", "id_tipo_tramite", "descripcion");
		
		return EXITO;
	}
	//registro tramite ---
	public String registroTramites() throws Exception
	{
		return EXITO;
	}
	
}
